/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package jogodavelha;

/**
 *
 * @author andreus
 */
public class Tabuleiro {

    private char[][] tabuleiro;

    public Tabuleiro() {
        tabuleiro = new char[3][3];
        for (int i = 0; i < tabuleiro.length; i++) {
            for (int j = 0; j < tabuleiro[i].length; j++) {
                tabuleiro[i][j] = ' ';
            }

        }
    }

    public boolean setXY(int x, int y, char c) {
        if (x > 0 && y > 0) {
            x = x - 1;
            y = y - 1;
            if (x < tabuleiro.length && y < tabuleiro[x].length) {
                if (tabuleiro[x][y] == ' ') {
                    tabuleiro[x][y] = c;
                    return true;
                }
            }
        }
        return false;
    }

    @Override
    public String toString() {
        String s = "  1  2  3\n";
        for (int i = 0; i < tabuleiro.length; i++) {
            s = s + (i + 1);
            for (int j = 0; j < tabuleiro[i].length; j++) {
                s = s + "|" + tabuleiro[i][j] + "|";
            }

            s = s + "\n ---------\n";
        }
        return s;
    }

    public boolean velha() {
        for (int i = 0; i < tabuleiro.length; i++) {
            for (int j = 0; j < tabuleiro[i].length; j++) {
                if (tabuleiro[i][j] == ' ') {
                    return false;
                }
            }
        }
        return true;
    }

    @SuppressWarnings("empty-statement")
    public boolean vencedor() {
        char c;

        for (int i = 0; i < tabuleiro.length; i++) {
            for (int j = 0; j < tabuleiro[i].length; j++) {
                c = tabuleiro[i][j];
                if (c != ' ') {
                    try {
                        if (tabuleiro[i][j + 1] == c && tabuleiro[i][j + 2] == c) {
                            return true;
                        }
                    } catch (ArrayIndexOutOfBoundsException e) {
                    };

                    try {
                        if (tabuleiro[i + 1][j] == c && tabuleiro[i + 2][j] == c) {
                            return true;
                        }
                    } catch (ArrayIndexOutOfBoundsException e) {
                    };

                    try {
                        if (tabuleiro[i + 1][j + 1] == c && tabuleiro[i + 2][j + 2] == c) {
                            return true;
                        }
                    } catch (ArrayIndexOutOfBoundsException e) {
                    };

                    try {
                        if (tabuleiro[i + 1][j - 1] == c && tabuleiro[i + 2][j - 2] == c) {
                            return true;
                        }
                    } catch (ArrayIndexOutOfBoundsException e) {
                    };
                }
            }
        }
        return false;
    }
}
